package com.qst.order.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 订单主表实体类
 * 对应数据库表：t_order
 */
@Data
@TableName("t_order")
public class Order {

    /**
     * 订单ID（主键，自增）
     */
    @TableId(type = IdType.AUTO)
    private Integer orderId;

    /**
     * 订单编号（业务唯一标识）
     */
    @TableField("order_no")
    private String orderNo;

    /**
     * 用户ID（关联用户表）
     */
    @TableField("user_id")
    private Integer userId;


    /**
     * 订单总金额
     */
    @TableField("total_price")
    private BigDecimal totalPrice;

    /**
     * 支付方式（WECHAT/ALIPAY）
     */
    @TableField("pay_type")
    private String payType;

    /**
     * 订单状态
     * PENDING_PAY：待支付
     * PAID：已支付
     * SHIPPED：已发货
     * COMPLETED：已完成
     * CANCELED：已取消
     * REFUNDED：已退款
     */
    @TableField("status")
    private String status;

    /**
     * 创建时间（含日期）
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;


    /**
     * 支付时间
     */
    @TableField("pay_time")
    private LocalDateTime payTime;

    /**
     * 发货时间
     */
    @TableField("shipping_time")
    private LocalDateTime shippingTime;

    /**
     * 收货时间
     */
    @TableField("receive_time")
    private LocalDateTime receiveTime;

    /**
     * 取消时间
     */
    @TableField("cancel_time")
    private LocalDateTime cancelTime;

    /**
     * 退款时间
     */
    @TableField("refund_time")
    private LocalDateTime refundTime;

    /**
     * 逻辑删除（0-未删，1-已删）
     */
    @TableLogic
    @TableField("is_deleted")
    private Integer isDeleted;

   @TableField("address_id")
    private Integer addressId;

// 异常原因
    private String exceptionReason;




   public Order() {}


}
    